2013-05-25 144 views
0


我使用的是一个失败的准备好的声明,我不知道为什么(不返回错误)
这里是我的代码:mysqli的准备语句失败

$stmt = $db->prepare("SELECT id, temps, nom, classes FROM profs WHERE matiere = ? AND pass = 0"); 
if (false===$stmt) { 
    die('prepare() failed: ('.$db->errno.')' . htmlspecialchars($db->error)); 
} 
$rc = $stmt->bind_param("s", $mat); 
if (false===$rc) { 
    die('bind_param() failed: ('.$db->errno.')' . htmlspecialchars($stmt->error)); 
} 
$rc = $stmt->execute(); 
if (false===$rc) { 
    die('execute() failed: ('.$db->errno.')' . htmlspecialchars($stmt->error)); 
} 

这只会返回:“准备()失败:(0)“
问题在哪里?

+1

的ini_set( 'display_errors设置',1); error_reporting(E_ALL); –

+0

@YourCommonSense:没有任何返回.. – iguider

+0

'mysqli_report(MYSQLI_REPORT_ALL);'会让你知道什么地方出错了...... – Stphane

回答

0

SELECT id, temps, nom, classes FROM profs WHERE matiere = ? AND pass = 0

这是查询是否有效?是否PROFS表中,并做列(ID,临时工,NOM,类,matiere,通)存在(并正确拼写!)

+0

是的..它存在..和列是有效的..:/ – iguider

+0

尝试'var_dump($ db - > connect_error)' – Farkie

+0

infact,只是'var_dump($ db);'看看出了什么? – Farkie