#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)
. Вы уверены в строке, которая вызывает это уведомление?