XAMPP использует SQLServer для обновления таблицы в MSSQL, обратите внимание: преобразование массива в строку в

#php #sql-server #xampp #sql-update #sqlsrv

#php #sql-сервер #xampp #sql-обновление #sqlsrv

Вопрос:

Ниже приведен этот код для обновления таблицы с использованием драйвера PHP для SQL Server, подключенного к SQL Server. Когда я запускаю этот код, у меня установлено соединение, но в строке есть ошибка sqlsrv_query , о которой я всегда получаю уведомление:

Преобразование массива в строку….

Как мне это исправить?

 <?php
    // Insert CustomerID, CustomerName,CustomerCountry,SubsID,SubsType
    $CustID=$_POST['cust_id'];
    $CustName=$_POST['cust_name'];
    $CustCountry=$_POST['cust_country'];
    $SubsID=$_POST['cust_subs'];
    $SubsType=$_POST['cust_subsType'];
    $custPhone=$_POST['cust_phone'];
    
    //connect to database
    $serverName = "DESKTOP-DMI3TT9";
    $connectionInfo = array("Database"=>"DB_LaNahFlex_2");
    $conn = sqlsrv_connect($serverName,$connectionInfo);
    
    if( $conn ) {
     echo "Connection established.<br />";
    }else{
         echo "Connection could not be established.<br />";
         die( print_r( sqlsrv_errors(), true));
    }
    
    //Query
    $sql="INSERT INTO Customer
        (CustomerID, CustName,CustomerCountry,CustomerPhone)
         VALUES (?,?,?,?)";
        $var=array('$CustID','$CustName','$CustCountry','$custPhone');
    
    if(sqlsrv_query($conn,$sql,$var)){
        echo "Success";
        //header('location:0.php');
    }
    else{
        echo "Fail";
    }
?>
 

Комментарии:

1. $var=array('$CustID','$CustName','$CustCountry','$custPhone'); … является ли CustomerID строкой (varchar / nvarchar) или числом (int)?

2. Заменить $var=array('$CustID','$CustName','$CustCountry','$custPhone') на $var=array($CustID,$CustName,$CustCountry,$custPhone)

3. @AlwaysLearning, varchar, все типы данных — varchar

4. @7drago7 sqlsrv_query() Вызов кажется правильным (если вы используете $var=array($CustID,$CustName,$CustCountry,$custPhone) . Вы уверены в строке, которая вызывает это уведомление?